#if !defined(FAKE_D3D10_VIEW_H)
#define FAKE_D3D10_VIEW_H

#include <d3d10.h>
#include "Fakes/FakeD3D10DeviceChild.h"
#include <rt/Exceptions/NotImplementedException.h>

class FakeD3D10View : public ID3D10View
{
public:
	FakeD3D10View()
		: DeviceChild()
	{ }

	CONTAIN_DEVICE_CHILD(DeviceChild);

	virtual void STDMETHODCALLTYPE GetResource(ID3D10Resource **ppResource) { throw rt::NotImplementedException(); }
};

#define CONTAIN_VIEW(member_) \
	CONTAIN_DEVICE_CHILD(DeviceChild); \
	FakeD3D10View member_; \
	virtual void STDMETHODCALLTYPE GetResource(ID3D10Resource **ppResource) { return member_.GetResource(ppResource); }

#endif
